package com.ruoyi.web.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 结算单对象 user_settlement
 * 
 * @author ruoyi
 * @date 2025-06-11
 */
public class UserSettlement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 公司id */
    @Excel(name = "公司id")
    private Long companyId;

    /** 公司名称 */
    @Excel(name = "公司名称")
    private String companyName;

    /** 商户名称 */
    @Excel(name = "商户名称")
    private String shopName;

    /** 商户id */
    @Excel(name = "商户id")
    private Long shopId;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date start;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date end;

    /** 订单id */
    @Excel(name = "订单id")
    private Long[] orderIds;

    /** 是否收款   1 已收款 */
    @Excel(name = "是否收款   1 已收款")
    private String isReceivePayment;

    /** 收款金额 */
    @Excel(name = "收款金额")
    private BigDecimal amount;

    /** 收据地址 */
    @Excel(name = "收据地址")
    private String sign;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private String isDel;

    /** 创建者 */
    @Excel(name = "创建者")
    private Long creator;

    /** 收款类型 */
    @Excel(name = "收款类型")
    private String type;

    /** 收款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date receivePaymentDate;

    private List<UserOrder> detail;
    
    public void setDetail(List<UserOrder> detail) 
    {
        this.detail = detail;
    }

    public List<UserOrder> getDetail() 
    {
        return detail;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }

    public void setCompanyName(String companyName) 
    {
        this.companyName = companyName;
    }

    public String getCompanyName() 
    {
        return companyName;
    }

    public void setShopName(String shopName) 
    {
        this.shopName = shopName;
    }

    public String getShopName() 
    {
        return shopName;
    }

    public void setShopId(Long shopId) 
    {
        this.shopId = shopId;
    }

    public Long getShopId() 
    {
        return shopId;
    }

    public void setStart(Date start) 
    {
        this.start = start;
    }

    public Date getStart() 
    {
        return start;
    }

    public void setEnd(Date end) 
    {
        this.end = end;
    }

    public Date getEnd() 
    {
        return end;
    }

    public void setOrderIds(Long[] orderIds) 
    {
        this.orderIds = orderIds;
    }

    public Long[] getOrderIds() 
    {
        return orderIds;
    }

    public void setIsReceivePayment(String isReceivePayment) 
    {
        this.isReceivePayment = isReceivePayment;
    }

    public String getIsReceivePayment() 
    {
        return isReceivePayment;
    }

    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }

    public void setSign(String sign) 
    {
        this.sign = sign;
    }

    public String getSign() 
    {
        return sign;
    }

    public void setIsDel(String isDel) 
    {
        this.isDel = isDel;
    }

    public String getIsDel() 
    {
        return isDel;
    }

    public void setCreator(Long creator) 
    {
        this.creator = creator;
    }

    public Long getCreator() 
    {
        return creator;
    }

    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }

    public void setReceivePaymentDate(Date receivePaymentDate) 
    {
        this.receivePaymentDate = receivePaymentDate;
    }

    public Date getReceivePaymentDate() 
    {
        return receivePaymentDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("shopName", getShopName())
            .append("shopId", getShopId())
            .append("start", getStart())
            .append("end", getEnd())
            .append("isReceivePayment", getIsReceivePayment())
            .append("amount", getAmount())
            .append("sign", getSign())
            .append("isDel", getIsDel())
            .append("creator", getCreator())
            .append("type", getType())
            .append("receivePaymentDate", getReceivePaymentDate())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
